<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- 1.导入Vue的包 -->
    <script src="./lib/vue-2.4.0.js"></script>
    <!-- 1. 安装 vue-router 路由模块 -->
    <script src="./lib/vue-router-3.1.5.js"></script>

    <style>
        .router-link-active,
        .myactive {
            color: red;
            font-weight: 800;
            font-style: italic;
            font-size: 80px;
            text-decoration: underline;
            background-color: green;
        }

        .v-enter,
        .v-leave-to {
            opacity: 0;
            transform: translateX(140px);
        }

        .v-enter-active,
        .v-leave-active {
            transition: all 0.4s ease;
        }
    </style>
</head>

<body>

    <div id="app">
        <!-- <a  href="#/login">登录</a>
        <a  href="#/register">注册</a> -->


        <!--这是vue-router 提供的元素，专门用来当做占位符的，将来 路由规则匹配到的组件，就会展示到这个标签中去 -->


        <router-link to="/login" tag="span">登录</router-link>
        <router-link to="/register">注册</router-link>

        <transition name="" mode="out-in">
            <router-view></router-view>
        </transition>


    </div>

    <script>
        //组件模板对象
        var login = {
            template: '<h1>登录组件</h1>'
        }

        var register = {
            template: '<h1>注册组件</h1>'
        }
        //2.创建一个路由对象，当导入路由包之后，在window 全局对象中，就有了一个路由的构造函数，叫做VueRouter

        //在new 路由对象的时候，可以为 构造函数，传递一个配置对象 
        var routerObj = new VueRouter({
            //route //这个配置对象中的route表示 【路由匹配规则】 的意思

            routes: [ //路由匹配规则
                //每个路由规则，都是一个对象，这个规则对象，身上，有两个必须的属性
                //属性1：是path，表示监听 那个路由连接地址；
                //属性2：是component ，表示，如果 路由是前面匹配到的path，则展示 component 属性对应的那个组件
                //注意： component 的属性值，必须是一个 组件的模板对象，不能是组件的引用名称
                // {
                //     path: '/',
                //     component: login
                // },
                {
                    path: '/',
                    redirect: '/login' //这里的redirect和Node中的完全是两码事
                },
                {
                    path: '/login',
                    component: login
                },
                {
                    path: '/register',
                    component: register
                }
            ],
            linkActiveClass: 'myactive'
        });


        var vm = new Vue({
            el: '#app',
            data: {
                msg: ''
            },
            methods: {

            },
            router: routerObj //将路由规则对象，注册到vm实例上，用来监听URL地址的变化，然后展示对应的组件
        });
    </script>
</body>

</html>